I faced the same issue and I saw a lot of locks generated by same statements and deadlocks happened on server during the same 3 minutes. 

Via deadlock reports I figured out that deadlocks happened with my processes and this system process in my case:
Proc [Database Id = 32767 Object Id = -993696157]

    select DB_NAME(32767)--NULL
    select OBJECT_NAME(-993696157)--sp_MSactivate_auto_sub

According to [this article][1] it is related to replication system task.

This is a typical callstack from blocked-process-report\blocking-process\process\executionStack in my case:

          <executionStack>
            <frame line="30" stmtstart="1570" stmtend="1796" sqlhandle="0x0300ff7f66f82acdcaae2d0054a9000001000000000000000000000000000000000000000000000000000000" />
            <frame line="917" stmtstart="67266" stmtend="67522" sqlhandle="0x0300ff7f48dddfc2a8b02d0054a9000001000000000000000000000000000000000000000000000000000000" />
            <frame line="52" stmtstart="3496" stmtend="5162" sqlhandle="0x0300ff7f5eea5ef7d25b2d0054a9000001000000000000000000000000000000000000000000000000000000" />
            <frame line="92" stmtstart="4236" stmtend="4768" sqlhandle="0x0300ff7f6366c5c416b12d0054a9000001000000000000000000000000000000000000000000000000000000" />
          </executionStack>

If I decode it with this query:

    select
    cast(
                 (select SUBSTRING(txt.text,(ISNULL(T.x.value('./@stmtstart', 'int'), 0) / 2) + 1,
                               ((CASE ISNULL(T.x.value('./@stmtend', 'int'), -1)
                                      WHEN -1 THEN DATALENGTH(txt.text)
                                      ELSE T.x.value('./@stmtend', 'int')
                                  END - ISNULL(T.x.value('./@stmtstart', 'int'), 0)) / 2) + 1) + CHAR(13) AS statement_txt
    							  ,T.x.value('./@line', 'int') as line
                           from @bpReportXml.nodes('//blocking-process/process/executionStack/frame') AS T(x)
                           cross apply sys.dm_exec_sql_text(T.x.value('xs:hexBinary(substring((./@sqlhandle), 3))', 'varbinary(max)')) AS txt
                           for XML path('')) as xml) AS frame_blocking_process_xml

Then I get this result:

    <statement_txt>EXEC %%Object(MultiName = @qualified_name).LockMatchID(ID = @object_id, Exclusive = 1, BindInternal = 0)
            
    </statement_txt>
    <line>30</line>
    <statement_txt>exec sys.sp_MSsetfilteredstatus @tabid
    
                        -- clear nonsqlsub status for this article.
    
                        
    </statement_txt>
    <line>917</line>
    <statement_txt>EXEC @retcode = @cmd
    					@publication,
    					@article,
    					@subscriber,
    					@status,
    					@previous_status,
    					@destination_db,
    					@frequency_type,
    					@frequency_interval,
    					@frequency_relative_interval,
    					@frequency_recurrence_factor,
    					@frequency_subday,
    					@frequency_subday_interval,
    					@active_start_time_of_day,
    					@active_end_time_of_day,
    					@active_start_date,
    					@active_end_date,
    					@optional_command_line,
    					@distribution_jobid OUTPUT,
    					@from_auto_sync,
    					@ignore_distributor,
    					-- Agent offload
    					@offloadagent,
    					@offloadserver,
    					@dts_package_name,
    					@dts_package_password,
    					@dts_package_location,
    					@skipobjectactivation,
    					@distribution_job_name,
    					@publisher,
    					@publisher_type
    					,@ignore_distributor_failure
    
    	
    </statement_txt>
    <line>52</line>
    <statement_txt>EXECUTE @retcode =	sys.sp_changesubstatus 
    						@publication = @publication,
    						@article = @article,
    						@status = @status,
    						@from_auto_sync = @from_auto_sync,
    						@skipobjectactivation = @skipobjectactivation,
    						@publisher = @publisher
    
        
    </statement_txt>
    <line>92</line>


  [1]: https://social.msdn.microsoft.com/Forums/azure/en-US/a06e8e51-8c4b-4288-ae56-8e4ef42524fa/blocked-process-report-blocking-lock-type?forum=sqldatabaseengine